package com.grad.webstudy.service;


import com.grad.webstudy.model.Token;
import com.grad.webstudy.model.User;

/**
 * @Description: token相关的接口类
 * @Author: zjf
 * @Date: 2020/1/19 14:10.
 */
public interface TokenService {

    /**
     * 创建一个token关联上指定用户
     *
     * @param user 根据用户
     * @return 生成的token
     */
    Token createToken(User user);

    /**
     * 检查token是否有效
     *
     * @param token token
     * @return 是否有效
     */
    boolean checkToken(String token);

    /**
     * 从字符串中解析token
     *
     * @param token 加密后的字符串
     * @return Token实例
     */
    Token getToken(String token);

    /**
     * 清除token
     *
     * @param token 值
     */
    void deleteToken(String token);


    /**
     * 刷新token过期时间
     *
     * @param token
     */
    void refresh(String token);
}
